// 负责管理所有的自定义指令
export const imagerror = {
   // 指令对象
   // 钩子函数，会在当前的dom元素插入到节点之后执行，dom渲染出来以后
   // inserted：被绑定元素插入父节点时调用 (仅保证父节点存在，但不一定已被插入文档中)。
   inserted(dom, options) {
      // options 是指令中的变量的解释，其中有一个属性叫做 value
      // dom 表示当前指令作用的dom对象，所绑定元素的dom
      // dom 认为此时就是图片
      // 初始化的时候如果有值则赋值，如果没值则需要进行默认值赋值
      dom.src = dom.src || options.value
      // 当图片有地址，但是地址没有加载成功的时候，会报错，会触发图片的一个事件
      // onerror
      dom.onerror = function() {
         // 当图片出现异常的时候，会将指令配置的默认图片设置为该图片的内容
         // dom 可以注册 error 事件
         // 图片加载出错之后就会执行 onerror
         // 不能写死
         // options.value  就是自定义指令绑定的值
         dom.src = options.value
      }
   },
   // componentUpdated：指令所在组件的 VNode 及其子 VNode 全部更新后调用。
   // 该函数同 inserted 一样，也是钩子函数，会在当前指令作用的组件，更新完毕之后执行
   // inserted 只会执行一次
   // 组件初始化后一旦更新，就不会进入 inserted 函数，会进入这个函数
   // 一旦更新，一旦赋值，执行这个
   componentUpload(dom, options) {
      dom.src = dom.src || options.value
   }
}

// 例：指令用法：<img v-imagerror="默认图片变量" />
// data() { return { img: 'a.png' } }
